package com.nowcoder.Offer.BitOperation;

import org.junit.Test;

/**
 * 输入一个整数，输出该数32位二进制表示中1的个数。其中负数用补码表示。
 */
public class NumberOf1 {

    public int NumberOf1(int n) {
        int res = 0;
        int helper = 1;
        while(helper!=0){
            if( (n & helper) != 0)
                res++;
            helper <<= 1;
        }
        return res;
    }

    public int NumberOf12(int n) {
        int res = 0;
        while(n!=0){
            res ++;
            n = (n - 1) & n;
        }
        return res;
    }

    @Test
    public void test(){
        System.out.println(NumberOf12(4));
    }
}
